Skip to content

Migrate coverage pipeline to score_coverage 0.3.1 - #235

Merged
NEOatNHNG merged 3 commits into
mainfrom
dcalavrezo_score_coverage
Oct 9, 2026
Merged

NEOatNHNG merged 3 commits into
mainfrom
dcalavrezo_score_coverage

Conversation

@dcalavrezo-qorix

Copy link
Copy Markdown
Contributor

Rollout of the qualified S-CORE coverage tool, score_coverage 0.3.1 (release notes), tracked in eclipse-score/score#3258. Linux LLVM coverage only.

What

The coverage pipeline this repository used from @score_tooling//coverage moved to its own module. This PR switches the labels one-to-one (defs.bzl, merger, generate_coverage_html, the death-test feature), adds score_coverage 0.3.1 as a dev dependency and sets --instrumentation_filter=^//score[/:] in the llvm_cov config, as the 0.3.1 manual requires: Bazel's guessed filter covers only the packages of the test targets, and a library tested from a test subpackage without an instrumented dependency would otherwise be compiled without counters. Scope, justification file, workflow and the gate at 85 are otherwise unchanged. The scope comment no longer calls the cc_binary entry-point sources a gap: the module collects them and lists them as no-data.

Verification

Local, bazel coverage --config=llvm_cov //score/... --build_tests_only (51 tests), old pipeline vs this branch, LCOV compared record by record:

Check Result
Files in report 86 → 86
Covered/uncovered status identical in 84 of 86 files
Raw line coverage 87.25 % → 87.18 %
Effective line coverage 89.34 % → 89.26 % (gate at 85 passes)
Justifications 58 lines and 4 branches justified in both; the same stale entry (verification_machine.h:173) reported in both
Raw branch coverage 81.43 % → 81.43 %
HTML index 87 links, 0 dead
bazel build --nobuild --lockfile_mode=error //..., bazel mod tidy pass, no diff

The two differing files are environment effects, not the pipeline. gptp/details/pdelay_measurer.cpp flips between two consecutive runs of the new module as well (checks on timestamp values). ipc/core/shared_memory_handler.h lines 110–111 are the construct callback of CreateOrOpen, which runs only when the shared-memory segment is created rather than reopened; the baseline run created it, later runs on the same machine reopened it.

New in the archive. unmapped_files.txt lists in-scope files without any coverage data: 19 declaration-only headers and 29 no-data files. Among the latter are the entry points (main.cpp, time_daemon.cpp, time_slave.cpp), the ts_client IPC headers and several hook/traits headers. None of these had data before either; they were simply not listed. Worth a look by the module owners.

The LLVM coverage pipeline under @score_tooling//coverage moved to its
own qualified module, score_coverage (eclipse-score/coverage_tool,
TCL LOW). Switch the labels one-to-one, add the module as a dev
dependency and set --instrumentation_filter=^//score[/:] as the 0.3.1
manual requires (Bazel's guessed filter covers only the packages of the
test targets). Scope, config, justification file, workflow and the gate
at 85 are otherwise unchanged. The scope comment no longer calls the
cc_binary entry-point sources a gap: the module collects them and lists
them as no-data in unmapped_files.txt.

Local comparison, //score/... (51 tests), old pipeline vs this commit,
LCOV compared record by record:

  files in report        86 -> 86
  identical status       84 of 86
  raw line coverage      87.25 % -> 87.18 %
  effective line cov.    89.34 % -> 89.26 % (58 justified lines, same
                         justifications applied, same stale entry)
  raw branch coverage    81.43 % -> 81.43 %

The two status differences are environment effects, not the pipeline:
pdelay_measurer.cpp flips between two runs of the new module as well
(timestamp-dependent checks), and shared_memory_handler.h lines
110-111 are the construct callback that runs only when the shared
memory segment is created rather than reopened.

Tracking: eclipse-score/score#3258
Signed-off-by: Dan Calavrezo <195309321+dcalavrezo-qorix@users.noreply.github.com>
@github-actions

github-actions Bot commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

License Check Results

🚀 The license check job ran with the Bazel command:

bazel run //:license-check

Status: ⚠️ Needs Review

Click to expand output
[License Check Output]
Extracting Bazel installation...
Starting local Bazel server (8.6.0) and connecting to it...
INFO: Invocation ID: 454a225d-7c30-4894-bbca-cc0a908198ce
Computing main repo mapping: 
Computing main repo mapping: 
WARNING: For repository 'platforms', the root module requires module version platforms@1.0.0, but got platforms@1.1.0 in the resolved dependency graph. Please update the version in your MODULE.bazel or set --check_direct_dependencies=off
WARNING: For repository 'score_platform', the root module requires module version score_platform@0.7.1, but got score_platform@0.7.2 in the resolved dependency graph. Please update the version in your MODULE.bazel or set --check_direct_dependencies=off
WARNING: For repository 'rules_oci', the root module requires module version rules_oci@2.2.7, but got rules_oci@2.3.0 in the resolved dependency graph. Please update the version in your MODULE.bazel or set --check_direct_dependencies=off
WARNING: For repository 'score_devcontainer', the root module requires module version score_devcontainer@1.8.0, but got score_devcontainer@1.11.1 in the resolved dependency graph. Please update the version in your MODULE.bazel or set --check_direct_dependencies=off
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Loading: 
Loading: 3 packages loaded
WARNING: Target pattern parsing failed.
ERROR: Skipping '//:license-check': no such target '//:license-check': target 'license-check' not declared in package '' defined by /home/runner/work/time/time/BUILD
ERROR: no such target '//:license-check': target 'license-check' not declared in package '' defined by /home/runner/work/time/time/BUILD
INFO: Elapsed time: 13.415s
INFO: 0 processes.
ERROR: Build did NOT complete successfully
ERROR: Build failed. Not running target

@dcalavrezo-qorix

Copy link
Copy Markdown
Contributor Author

@NEOatNHNG could you review this one, please? It moves the coverage pipeline to the qualified score_coverage 0.3.1 (rollout tracked in eclipse-score/score#3258). The before/after comparison of the coverage data is in the description and CI is green. Valera already approved; it needs a second pair of eyes or a merge. Thanks!

@github-actions

github-actions Bot commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

Quality pack traceability report for this pull request:

Status: PASS (workflow run)

Traceability gate input: /home/runner/work/time/time/_build/metrics.json
------------------------------------------------------------------------
[comp_req]
  Requirements with source links: 8/58 (13.79%)
  Requirements with test links:   5/58 (8.62%)
  Requirements fully linked:      5/58 (8.62%)
  Tests linked to requirements:   8/393 (2.04%)
  Broken test references:         0
------------------------------------------------------------------------
Threshold check passed.

@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Documentation preview for this pull request is available at:
pr-235: https://eclipse-score.github.io/time/pr-235/

@NEOatNHNG
NEOatNHNG merged commit 3bb1551 into main Oct 9, 2026
24 checks passed
@NEOatNHNG
NEOatNHNG deleted the dcalavrezo_score_coverage branch October 9, 2026 14:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants